import re

value="<tr><td>美元</td><td>100</td><td>691.38</td><td>691.38</td><td>688.42</td><td>682.76</td></tr>"
'''
执行完value = value[trStart.end():trEnd.start()]后的value如下：
"<td>美元</td><td>100</td><td>691.38</td><td>691.38</td><td>688.42</td><td>682.76</td>"
执行完第一次value = value[tdEnd.end()]后value如下：
"<td>100</td><td>691.38</td><td>691.38</td><td>688.42</td><td>682.76</td>"
'''

#以下是一个典型的拆掉文字两边标签的操作
trStart=re.search(r"<tr>",value)            #匹配开始位置
trEnd=re.search(r"</tr>",value)             #匹配结束位置
value=value[trStart.end():trEnd.start()]    #把字符串看成字符数组，并进行相应的拆解；相当于拆掉了tr标签
while value!="":                            #直到value字符串没有数据为止
      tdStart = re.search(r"<td>", value)   #注意value已经发生变化了
      tdEnd = re.search(r"</td>", value)
      t = value[tdStart.end():tdEnd.start()]#拆掉td标签，t的值就是就是td的内容
      print(t)
      value=value[tdEnd.end():]             #拆掉剩余字符串的第1个td标签和其中的所有的数据
      #print(s)

#trStart.end()    返回的是匹配上的字符串最后一位字符的下标。即span=(3,6)中的6